快速判断数据库中某条数据是否存在的方法 您所在的位置:网站首页 vue3todolist 筛选掉已存在的数据 快速判断数据库中某条数据是否存在的方法

快速判断数据库中某条数据是否存在的方法

2023-07-29 10:05| 来源: 网络整理| 查看: 265

快速判断数据库中某条数据是否存在

 

实际项目中经常会遇到判断数据是否存在的情况。一般都是直接查询数据库,查到认为存在,否则就是不存在。 实际项目中可能会存在如下代码

SELECT * FROM `t_user` where username='tw'

这种实现方式没有问题,但是如果只是单纯的判断数据是否存在,似乎有点小题大做。 下面推荐一种方式(在索引等其他条件都相同的情况下):

SELECT count(*) FROM `t_user` where username='tw' limit 1

如果只是单纯的判断是否存在,不涉及后续操作,那么下面这种方式无疑更好。如果你后需还需要使用这些数据,那么直接查出来,然后判断是否存在也是可以的。 其实就跟使用map数据结构这种一样,如果想从map里面根据key取出某个value。当然可以先调用contains判断是否存在,然后直接取,或者直接调用get方法取值,通过取出来的值也可以判断是否存在。

为什么加limit 1后查询速度会快?

疑惑:

按照mysql的语句执行顺序,limit是在where跟select之后执行的,是不是说执行完select之后才执行limit,那么在执行完select的时候,不是已经产生了满足email条件的全量的虚拟表了么,然后才从这个虚拟表里面取了一条记录出来,感觉这样并不会快啊,

 

实际上是因为整个执行sql的过程,是一步一步的,其实上面这个想法没错,确实是一步一步来完成的,但考虑到内存资源有限,并不是会把所有数据过滤出来后,在做下一步操作。 而是按照总体次序,先where,然后limit,但是这个过程并不说 mysql要做完所有的where之后,才会应用limit,而是做一步,判断一下,次序总是先where,后limit判断,这个次序是不变的。 同样的,先where后select,是做一步where,然后再select,所以,如果数据量大,你会发现数据都是一部分一部分出来的,不会一下子出来。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有